package com.itheima.xx.util;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;

/**
 * Description:
 *
 * @author codermao
 * @date 2023/10/28 10:47
 */
public class SelectProviderUtil {

//    public String queryUsersBySexOrUserName(@Param("userName") String userName){
//        String sql = "select * from tb_user where sex = 1";
//        if (userName != null && userName.trim() != ""){
//            //and前面加空格
//            sql += " and user_name like concat('%',#{userName},'%')";
//        }
//        return sql;
//    }

    /**
     * 为了防止没有必要的空格引起的错误，mybatis提供了一个SQL类来实现sql语句拼接，
     *  在SQL类中将sql语句的关键字都变为方法名，并且每个方法返回值都是SQL类型，可以链式编程
     */
    public String queryUsersBySexOrUserName(@Param("userName") String userName){
        SQL sql = new SQL();
        sql.SELECT("*").FROM("tb_user").WHERE("sex = 1");
        if(userName != null && userName.trim() != ""){
            sql.AND().WHERE("user_name like concat('%',#{userName},'%')");
        }
        //SELECT * FROM tb_user WHERE (sex = 1 AND user_name like concat('%',?,'%'))
        return sql.toString();
    }
}
